package IT10;

public class DiuiDemo01 {
    public static void main(String[] args) {
        //回顾不死神兔问题，求第20个月兔子的对数
        //每个月的兔子对数：1,1,2,3,5,8，...
        int[] arr = new int[20];
        arr[0] = 1;
        arr[1] = 1;
        for(int i = 2;i<arr.length;i++){
            arr[i] = arr[i-1] + arr[i-2];
        }
        System.out.println(arr[19]);
        System.out.println(f(20));
        System.out.println("---------");
        int result = jc(5);
        System.out.println("5的阶乘是："+ result);
    }
    /*
    递归解决问题，首先定义一个方法
    定义一个方法（n）:表示第n个月的兔子对数
    那么，第n-1个月的兔子对数：f(n-1);
     */
    public static int f(int n){
        if(n==1 || n==2){
            return 1;
        }else {
            return f(n-1)+f(n-2);
        }
    }
    public static int jc(int n){
        //在方法内部判断该变量的值是否是1
        if(n == 1){
            //是，返回1
            return 1;
        }else {
            //不是，返回n*(n-1)
            return n*jc(n-1);
        }
    }
}
